package meituan;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;

public class Main2 {
    /**
     * 第一行两个整数N,K，以空格分开，分别表示彩带有N厘米长，你截取的一段连续的彩带不能超过K种颜色。
     * 接下来一行N个整数，每个整数表示一种色彩，相同的整数表示相同的色彩。
     * 1≤N,K≤5000，彩带上的颜色数字介于[1, 2000]之间。
     */
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        int k = in.nextInt();
        int res = 0;

        in.nextLine();
        String s = in.nextLine();
        int[] arr = Arrays.stream(s.split(" "))
                .mapToInt(i -> Integer.valueOf(i))
                .toArray();
        LOOP:
        for(int i=0;i<N;i++){
            // 每个起点一个新set
            HashSet<Integer> set = new HashSet<>();
            for(int j = i;j<N;j++){
                /**
                 * 存在直接替换res
                 * 如果不存在，判断符合小于k，加入
                 * 发现等于k时，判断替换res，然后continue上一层
                 */
                if(set.contains(arr[j])){
                    if(j-i+1>res) res = j - i + 1;
                    continue;
                }else{
                    // 新一种颜色
                    if(set.size()<k){
                        set.add(arr[j]);
                        if(j-i+1>res) res = j - i + 1;
                    }else {
                        continue LOOP;
                    }
                }
            }
        }
        System.out.println(res);
    }
}
